1. Field of the Invention
The present disclosure relates generally to nonvolatile memory devices, and particularly, to self-measuring nonvolatile memory devices, for example using programmable pointers.
2. Description of the Related Art
Generally, when a computing system is powered on, the computing system executes a startup routine to initialize the computing system. Often, the startup routine instructions may be stored in nonvolatile memory, such as an electrically erasable programmable read-only memory (EEPROM) chip. More specifically, the startup routine may be used to initialize the computing system by identifying, initializing, and/or testing connected components (e.g., devices). Additionally, the startup routine may be used to test and/or load instructions used to initialize the computing system, such as a boot loader used to load an operating system. For example, the startup routine may instruct the computing system to perform a cryptographic hash on code that will be subsequently executed and to determine whether the code has been undesirably modified (e.g., malicious, defective, or otherwise corrupted) based on the result of the cryptographic hash. In other words, the startup routine may be used to test subsequently executed instructions for possible corruption to improve the operational reliability of the computing system.
To further improve the operational reliability of the computing system, the startup routine instructions may also be tested for possible corruption before execution. More specifically, similar to the subsequently executed instructions, the startup routine instructions may be identified and a malware error-detection may be performed. However, unlike the subsequently executed instructions, the startup routine instructions may not be used to identify itself because the startup routine instructions are tested before they are executed.
Accordingly, it would be beneficial to improve operational reliability of a computing system, for example, by enabling startup routine instructions to be identified for testing before execution.